Skip to content

targets/decklink_mini_4k: Generate exact video clocks - #764

Open
enjoy-digital wants to merge 1 commit into
masterfrom
fix/decklink-mini-4k-clocking
Open

targets/decklink_mini_4k: Generate exact video clocks#764
enjoy-digital wants to merge 1 commit into
masterfrom
fix/decklink-mini-4k-clocking

Conversation

@enjoy-digital

Copy link
Copy Markdown
Member

Summary

  • Generate the 148.5MHz system/video and 594MHz DDR3 clocks from the board's 24MHz clock-capable input with an S7 MMCM.
  • Generate exact 200MHz IDELAY and 150MHz SATA reference clocks from the 100MHz input with one auxiliary PLL.
  • Replace stale hard-coded clock-net constraints with a constraint resolved from the generated PLL input signal.
  • Declare the independent 24MHz and 100MHz clock trees asynchronous.

Problem

The previous CRG requested 148.5MHz, 594MHz and 200MHz outputs from one integer S7 PLL driven at 100MHz. That combination cannot produce the required clocks exactly, so Vivado selected:

Clock Previous New
System / HDMI 147.5MHz 148.5MHz
DDR3 x4 590MHz 594MHz
IDELAY reference 196.667MHz 200MHz
SATA reference 150MHz 150MHz

Besides moving the HDMI timing away from the requested 1080p60 mode, the 196.667MHz IDELAY clock did not match the IDELAYE2 200MHz reference-frequency setting.

The 24MHz input permits an exact MMCM configuration with a 49.5 multiplier and output dividers of 8 and 2. The 100MHz input permits exact 200MHz and 150MHz auxiliary PLL outputs.

Validation

  • Default target generation with --build --no-compile.
  • Framebuffer target generation with --with-video-framebuffer --build --no-compile.
  • Vivado 2025.2 synthesis, placement and routing without bitstream generation.
  • Final setup WNS: +0.170ns.
  • Final hold WHS: +0.065ns.
  • No unrouted nets, implementation errors, critical warnings, or IDELAY reference-frequency mismatch.

Hardware validation of the HDMI output is still requested in #763.

Related to #763.

The 100MHz input cannot generate the requested 148.5MHz, 594MHz and 200MHz clocks simultaneously with the 7-series PLL. Vivado consequently selected 147.5MHz, 590MHz and 196.667MHz, leaving HDMI outside its nominal timing and the IDELAY reference inconsistent with its 200MHz setting.

Use the clock-capable 24MHz input and an MMCM for the system, DDR3 and optional HDMI domains. Use the 100MHz input with one auxiliary PLL for exact 200MHz IDELAY and 150MHz SATA reference clocks.

Resolve the non-dedicated clock route override from the generated auxiliary PLL input signal instead of hard-coded net names, and declare the two independent clock trees asynchronous.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant